#ifndef EXCEPTIONS_HPP
#define EXCEPTIONS_HPP



#include <girlTools/girlToolsImage.hpp>
#include <string>


namespace Exceptions {

    class NotSameSizeException
    {
        const girl::tools::Image &image1;
        const girl::tools::Image &image2;

    public :
            NotSameSizeException(const girl::tools::Image &img1,const  girl::tools::Image &img2)
                :image1 ( img1),
                image2 ( img2)
            {}
    };

    class MessageException
    {
        std::string _message;
    public :

            MessageException(std::string message)
                :
                _message(message)
            { }

            std::string getMessage()
            {return _message;}

    };

    class NullPointerImage : public MessageException
    {

    public :
            NullPointerImage(std::string message)
                : MessageException(message)
            {}
    };

    class IOException : public MessageException
    {

    public :
            IOException(std::string message)
                : MessageException(message)
            {}
    };
};

#endif // EXCEPTIONS_HPP
